package com.iprojectmanager.managers;

import java.util.*;
import com.iprojectmanager.entities.*;
import javax.persistence.*;
/**
 * @author Alucard
 */
public class ActivitiesManager extends IProjectManager
{
    public ActivitiesManager()
    {
        super();
    }
    
    public Actividad getActividad(String id)
    {
        EntityManager em = emf.createEntityManager();
        List activities = em.createQuery("Select x From Actividad x Where x.nombre = '" + id + "'").getResultList();
        Actividad actividad = null;
            if(activities.size() > 0)
            {
                actividad = (Actividad)activities.get(0);
            }
        return actividad;
    }
    
    public ArrayList<Actividad> getActividades(long idProj)
    {
        EntityManager em = emf.createEntityManager();
        List activities = em.createQuery("Select x From Actividad x Where x.proyecto.id = " + idProj).getResultList();
        ArrayList<Actividad> actividades = new ArrayList<Actividad>();
        
            for(int inx=0;inx<activities.size();inx++)
            {
                actividades.add((Actividad)activities.get(inx));
            }
        
        return actividades;
    }
    
    public Actividad getActividad(long id)
    {
        EntityManager em = emf.createEntityManager();
        List activities = em.createQuery("Select x From Actividad x Where x.id = " + id).getResultList();
        //Actividad actividad = (Actividad)activities.get(0);
        return (activities.size() > 0)?(Actividad)activities.get(0):null;
    }
    
    public void updateAdvance(String id, String Archivo){
        ActivitiesManager manager = new ActivitiesManager();
        Actividad update = manager.getActividad(Long.valueOf(id));
        update.setAvance(Archivo);
        manager.exec(update,IProjectManager.UPDATE);
    }
    public List<Actividad> getActividades()
    {
        EntityManager em = emf.createEntityManager();
        List actividad = em.createQuery("Select x From Actividad x").getResultList();
        ArrayList<Actividad> actividades = new ArrayList<Actividad>();

            for(int inx=0;inx<actividad.size();inx++)
            {
                actividades.add((Actividad)actividad.get(inx));
            }

        return actividades;
    }
    
    public List<Actividad> getActividadesFromIntegrantes(IntegranteProyecto ip)
    {
        EntityManager em = emf.createEntityManager();
        List actividad = em.createQuery("Select x From Actividad x where x.responsable.id = " + ip.getId()).getResultList();
        ArrayList<Actividad> actividades = new ArrayList<Actividad>();

            for(int inx=0;inx<actividad.size();inx++)
            {
                actividades.add((Actividad)actividad.get(inx));
            }

        return actividades;
    }
}
